package com.javasm.dao;

import com.javasm.entity.AdminMenu;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * 菜单(AdminMenu)表数据库访问层
 *
 * @author makejava
 * @since 2025-06-19 15:31:29
 */
public interface AdminMenuDao {
    //根据不同的用户 查当前用户的菜单列表
    List<AdminMenu> listMenuByUid(Long uid);

    //菜单列表条件查询
    List<AdminMenu> listMenuByCondition(@Param("inputMenu") AdminMenu inputMenu,@Param("startIdx")Integer startIdx,@Param("pageSize")Integer pageSize);

    //统计当次查询的总记录数
    Integer countMenuByCondition(@Param("inputMenu") AdminMenu inputMenu);

    //查所有的一级菜单
    List<AdminMenu> listMenuLevel1();


    //添加菜单信息
    Integer insertMenu(@Param("inputMenu") AdminMenu inputMenu);

    //查询菜单的可用图标
    List<String> listMenuIcon();

    //根据编号查询菜单
    AdminMenu getById(Long mid);

    //修改菜单数据
    Integer updateMenu(@Param("inputMenu") AdminMenu inputMenu);

    //单条删除
    Integer deleteMenu(Long mid);

    //删除多条
    Integer deleteMenuMultiple(@Param("listMid")List<Long> listMid);



    //查询菜单列表
    List<AdminMenu> ListAllMenuWithSubMenu();
    //查当前用户的菜单编号
    List<Long> ListUserMenuId(Long uid);

}

